package cn.jsj.invite.dao;

import cn.jsj.invite.pojo.SchoolAdminEnt;
import cn.jsj.invite.pojo.SchoolInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;


@Mapper
public interface SchoolDao {

    /**
     * 查询学校的简单信息
     *
     * @return 学校信息集合
     */
    List<SchoolInfo> selectSchoolSimpleInfo();

    /**
     * 根据ID查询某个学校的信息
     *
     * @param id 学校ID
     * @return 学校对象
     */
    SchoolInfo selectOneSchoolById(@Param("id") Integer id);

    /**
     * 管理员根据帖子ID删除帖子
     *
     * @param id 帖子ID
     * @return 成功1，否则0
     */
    Integer deletePageByPageId(int id);

    /**
     * 管理员修改密码 根据旧密码和id
     *
     * @param adminOldPassword 旧密码
     * @param adminNewPassword 新密码
     * @param id               学校管理员ID
     * @return 成功1，否则0
     */
    Integer updatePasswordByOldPwdAndAdminId(@Param("adminOldPassword") String adminOldPassword, @Param("adminNewPassword") String adminNewPassword, @Param("adminId") int id);

    /**
     * 添加一个学校管理员
     *
     * @param name     登录名
     * @param password 登录密码
     * @param schoolId 学校第
     * @param phone    手机号
     * @return 成功1，否则0
     */
    Integer insertOneSchoolAdmin(@Param("name") String name, @Param("password") String password, @Param("schoolId") Integer schoolId, @Param("phone") String phone);

    /**
     * 根据id查询管理员信息
     *
     * @param id 管理员ID
     * @return 管理员实体类
     */
    List<SchoolAdminEnt> selectOneSchoolAdminById(@Param("id") Long id);


    /**
     * Id查询一个学校管理员信息
     *
     * @param schoolAdminId 学校管理员Id
     * @return 管理员信息对象
     */
    SchoolAdminEnt selectSchoolAdminById(@Param("schoolAdminId") Long schoolAdminId);

    /**
     * 修改学校管理员的联系方式
     *
     * @param id    学校管理员的ID
     * @param phone 管理员新的电话号码
     * @return 成功1，否则0
     */
    Integer updateSchoolAdminConcatById(@Param("id") Integer id, @Param("phone") String phone);

    /**
     * 根据ID禁用学生账号
     *
     * @param stuId 学生ID
     * @return 成功1，否则0
     */
    Integer updateDisableStudentById(@Param("stuId") Integer stuId);


    Integer updatePasswordById(@Param("schoolAdminId") Integer schoolAdminId, @Param("newPassword") String newPassword);
}
